2c847170f51953f1f0d9e9675d20d85a4a5a7788,opennms-install/src/main/java/org/opennms/install/Installer.java,Installer,install,#String[]#,139

Before Change


        loadProperties();
        parseArguments(argv);

        if (!m_update_database && !m_do_inserts && !m_update_iplike
                && !m_update_unicode && m_tomcat_conf == null
                && !m_install_webapp && !m_fix_constraint) {
            usage(options, m_commandLine, "Nothing to do.  Use -h for help.",
                  null);
            System.exit(1);
        }

        m_installerDb.setForce(m_force);
        m_installerDb.setIgnoreNotNull(m_ignore_not_null);
        m_installerDb.setNoRevert(m_do_not_revert);

        File cfgFile = ConfigFileConstants.getFile(ConfigFileConstants.OPENNMS_DATASOURCE_CONFIG_FILE_NAME);
        
        JdbcDataSource adminDs = C3P0ConnectionFactory.marshalDataSourceFromConfig(new FileReader(cfgFile), ADMIN_DATA_SOURCE_NAME);
        m_installerDb.setAdminDataSource(new SimpleDataSource(adminDs));

        JdbcDataSource ds = C3P0ConnectionFactory.marshalDataSourceFromConfig(new FileReader(cfgFile), OPENNMS_DATA_SOURCE_NAME);
        m_installerDb.setDataSource(new SimpleDataSource(ds));
        
        m_installerDb.setPostgresOpennmsUser(ds.getUserName());
        m_installerDb.setPostgresOpennmsPassword(ds.getPassword());
        m_installerDb.setDatabaseName(ds.getDatabaseName());

        /*
         * make sure we can load the ICMP library before we go any farther
         */

        if (!Boolean.getBoolean("skip-native")) {
            String icmp_path = findLibrary("jicmp", m_library_search_path, true);
            String jrrd_path = findLibrary("jrrd", m_library_search_path, false);
            writeLibraryConfig(icmp_path, jrrd_path);
        }
        
        /*
         * Everything needs to use the administrative data source until we
         * verify that the opennms database is created below (and where we
         * create it if it doesn't already exist).
         */

        // XXX Check Tomcat version?
        if (m_update_database || m_update_iplike || m_update_unicode
                || m_do_inserts || m_fix_constraint) {
            if (!m_ignore_database_version) {
                m_installerDb.databaseCheckVersion();
            }
            m_installerDb.databaseCheckLanguage();
        }

        printDiagnostics();

        verifyFilesAndDirectories();

        if (m_install_webapp) {
            checkWebappOldOpennmsDir();
            checkServerXmlOldOpennmsContext();
        }

        if (m_update_database || m_fix_constraint) {
            m_installerDb.readTables();
        }

        if (m_update_database) {
            // XXX Check and optionally modify pg_hba.conf

            if (!m_installerDb.databaseUserExists()) {
                m_installerDb.databaseAddUser();
            }
            if (!m_installerDb.databaseDBExists()) {
                m_installerDb.databaseAddDB();
            }
        }

        m_installerDb.checkUnicode();

        // We can now use the opennms database

        if (m_fix_constraint) {
            m_installerDb.fixConstraint(m_fix_constraint_name,
                                        m_fix_constraint_remove_rows);
        }

        if (m_update_database) {
            m_installerDb.checkOldTables();
            if (!m_skip_constraints) {
                m_installerDb.checkConstraints();
                m_installerDb.checkIndexUniqueness();
            }
            m_installerDb.createSequences();

            // should we be using createFunctions and createLanguages instead?
            m_installerDb.updatePlPgsql();

            // should we be using createFunctions instead?
            m_installerDb.addStoredProcedures();

            m_installerDb.addColumnReplacements();
            m_installerDb.createTables();
            m_installerDb.closeColumnReplacements();

            m_installerDb.fixData();
        }

        if (m_do_inserts) {
            m_installerDb.insertData();
        }

        if (m_update_unicode) {
            m_out.println("WARNING: the -U option is deprecated, it does nothing now");
        }

        if (m_do_vacuum) {
            m_installerDb.vacuumDatabase(m_do_full_vacuum);
        }

        if (m_install_webapp) {
            installWebApp();
        }

        if (m_tomcat_conf != null) {
            updateTomcatConf();
        }

        if (m_update_iplike) {
            m_installerDb.updateIplike();
        }

        if (m_update_database && m_remove_database) {
            m_installerDb.disconnect();
            m_installerDb.databaseRemoveDB();
        }

        m_installerDb.disconnect();

        if (m_update_database) {
            createConfiguredFile();

After Change


        loadProperties();
        parseArguments(argv);

        boolean doDatabase = (m_update_database || m_do_inserts || m_update_iplike || m_update_unicode || m_fix_constraint);
        
        if (!doDatabase && m_tomcat_conf == null && !m_install_webapp && m_library_search_path == null) {
            usage(options, m_commandLine, "Nothing to do.  Use -h for help.", null);
            System.exit(1);
        }

        if (doDatabase) {
            m_installerDb.setForce(m_force);
            m_installerDb.setIgnoreNotNull(m_ignore_not_null);
            m_installerDb.setNoRevert(m_do_not_revert);
    
            File cfgFile = ConfigFileConstants.getFile(ConfigFileConstants.OPENNMS_DATASOURCE_CONFIG_FILE_NAME);
            
            Reader fr = new FileReader(cfgFile);
            JdbcDataSource adminDs = C3P0ConnectionFactory.marshalDataSourceFromConfig(fr, ADMIN_DATA_SOURCE_NAME);
            fr.close();
            m_installerDb.setAdminDataSource(new SimpleDataSource(adminDs));

            fr = new FileReader(cfgFile);
            JdbcDataSource ds = C3P0ConnectionFactory.marshalDataSourceFromConfig(fr, OPENNMS_DATA_SOURCE_NAME);
            m_installerDb.setDataSource(new SimpleDataSource(ds));
            fr.close();

            m_installerDb.setPostgresOpennmsUser(ds.getUserName());
            m_installerDb.setPostgresOpennmsPassword(ds.getPassword());
            m_installerDb.setDatabaseName(ds.getDatabaseName());
            
        }

        /*
         * make sure we can load the ICMP library before we go any farther
         */

        if (!Boolean.getBoolean("skip-native")) {
            String icmp_path = findLibrary("jicmp", m_library_search_path, true);
            String jrrd_path = findLibrary("jrrd", m_library_search_path, false);
            writeLibraryConfig(icmp_path, jrrd_path);
        }
        
        /*
         * Everything needs to use the administrative data source until we
         * verify that the opennms database is created below (and where we
         * create it if it doesn't already exist).
         */

        if (doDatabase) {
            if (!m_ignore_database_version) {
                m_installerDb.databaseCheckVersion();
            }
            m_installerDb.databaseCheckLanguage();

            m_out.println("* using '" + m_installerDb.getPostgresOpennmsUser() + "' as the PostgreSQL user for OpenNMS");
            m_out.println("* using '" + m_installerDb.getPostgresOpennmsPassword() + "' as the PostgreSQL password for OpenNMS");
            m_out.println("* using '" + m_installerDb.getDatabaseName() + "' as the PostgreSQL database name for OpenNMS");
        }

        verifyFilesAndDirectories();

        if (m_install_webapp) {
            checkWebappOldOpennmsDir();
            checkServerXmlOldOpennmsContext();
        }

        if (m_update_database || m_fix_constraint) {
            m_installerDb.readTables();
        }

        if (m_update_database) {
            // XXX Check and optionally modify pg_hba.conf

            if (!m_installerDb.databaseUserExists()) {
                m_installerDb.databaseAddUser();
            }
            if (!m_installerDb.databaseDBExists()) {
                m_installerDb.databaseAddDB();
            }
        }

        if (doDatabase) {
            m_installerDb.checkUnicode();
        }
        
        // We can now use the opennms database

        if (m_fix_constraint) {
            m_installerDb.fixConstraint(m_fix_constraint_name,
                                        m_fix_constraint_remove_rows);
        }

        if (m_update_database) {
            m_installerDb.checkOldTables();
            if (!m_skip_constraints) {
                m_installerDb.checkConstraints();
                m_installerDb.checkIndexUniqueness();
            }
            m_installerDb.createSequences();

            // should we be using createFunctions and createLanguages instead?
            m_installerDb.updatePlPgsql();

            // should we be using createFunctions instead?
            m_installerDb.addStoredProcedures();

            m_installerDb.addColumnReplacements();
            m_installerDb.createTables();
            m_installerDb.closeColumnReplacements();

            m_installerDb.fixData();
        }

        if (m_do_inserts) {
            m_installerDb.insertData();
        }

        if (m_update_unicode) {
            m_out.println("WARNING: the -U option is deprecated, it does nothing now");
        }

        if (m_do_vacuum) {
            m_installerDb.vacuumDatabase(m_do_full_vacuum);
        }

        if (m_install_webapp) {
            installWebApp();
        }

        if (m_tomcat_conf != null) {
            updateTomcatConf();
        }

        if (m_update_iplike) {
            m_installerDb.updateIplike();
        }

        if (m_update_database && m_remove_database) {
            m_installerDb.disconnect();
            m_installerDb.databaseRemoveDB();
        }

        if (doDatabase) {
            m_installerDb.disconnect();
        }
        
        if (m_update_database) {